#ifndef DLGMAIN_H
#define DLGMAIN_H

#include <QDialog>
#include <QDir>
#include <QCloseEvent>
#include <QTimer>
#include <QLabel>
#include <QThread>
#include <QListWidgetItem>
#include <QDesktopServices>
#include "tmmysessioncb.h"
#include "tmrtmpctrl.h"
#include "libcsv/qtmlibcsv.h"


namespace Ui {
class DlgMain;
}

class DlgMain : public QDialog
{
    Q_OBJECT

public:
    explicit DlgMain(QWidget *parent = 0);
    ~DlgMain();

    //初始化
    void init();
    //从csv文件读取tts信息
    void read_xls_tts();
    //移动控制
    void move_control(bool bStart, QString strCmd);
    //重写关闭事件
    void closeEvent(QCloseEvent *e);

    //销毁ice
    void destoryIce();

signals:
    void sig_msgBox(QString strMsg);

    void sig_sendTTS(QString strTTS);

    void sig_getVideoLive(QString m_ip,QLabel *pWidget);
    void sig_stopVideoLive();
    void sig_startAudioLive(QString m_ip);
    void sig_stopAudioLive();

private slots:
    //链接操作
    void slot_conn(QString m_ip);
    void slot_cancel();

    void slot_connSuccess();
    void slot_connFailed();
    void slot_disConnected();

    void slot_msgBox(QString strMsg);

    //语音tts
    void slot_sendTTS(QString strTTS);

    void slot_getTtsState();

    void on_btn_tts_reload_clicked();

    void on_btn_tts_edit_clicked();

    void on_lineEdit_search_textEdited(const QString &arg1);

    void on_list_class_currentRowChanged(int currentRow);

    void on_list_content_itemClicked(QListWidgetItem *item);

    void on_list_content_itemDoubleClicked(QListWidgetItem *item);

    void on_Btn_tts_clicked();

    //多媒体
    void slot_getScriptState();

    void on_Btn_script_clicked();

    void on_Btn_face_clicked();

    void on_Btn_getDir_clicked();

    void on_Btn_getList_clicked();

    void on_Btn_delete_clicked();

    //移动控制
    void on_checkBox_avoidOpen_clicked(bool checked);

    void slot_moveCtrl();

    void on_btn_move_up_pressed();

    void on_btn_move_up_released();

    void on_btn_move_down_pressed();

    void on_btn_move_down_released();

    void on_btn_move_left_pressed();

    void on_btn_move_left_released();

    void on_btn_move_right_pressed();

    void on_btn_move_right_released();

    void on_btn_stop_slow_clicked();

    void on_btn_stop_fast_clicked();

    void on_btn_power_on_clicked();

    void on_btn_power_off_clicked();

    //音视频
    void on_Btn_talk_clicked();

    void on_Btn_talk_press_pressed();

    void on_Btn_talk_press_released();

    void on_checkBox_video_clicked(bool checked);


private:
    Ui::DlgMain *ui;

    QTmLibCSV m_csvTTS;

    QTimer *pr_TtsStateTimer;//tts状态监测定时器
    QTimer *pr_ScriptStateTimer;//script状态监测定时器

    QTimer *pr_MotorTimer;//电机控制定时器
    QString m_strMoveFlag;   

    QString m_connIP;

    QThread *myThread;
    TMRTMPCtrl *pr_RTMPCtrl;
};

#endif // DLGMAIN_H
